package java_thinking.unit_7._7_2;

/**
 * @Description : 新建一个子类，默认会在子类的无参构造器中调用super()
 *                如果父类中存在有参构造器，而不显示的写明无参构造器，那么在
 *                子类的有参构造器中必须调用父类有参的super()，否则会编译错误
 * @author: cww
 * @DateTime: 2019-02-25 21:28
 */

public class Sun extends Father{

    /**
     * 显示的定义子类的无参构造方法，那么此时其父类存在无参构造方法，此时注意
     * 当一个；类显示的写出有参的构造函数后，编译器就不认为你会使用默认的无参构造器，
     * 此时就要自己写一个无参构造器
     */
    public Sun(){
        //这里如果是调用super()则会出现编译错误，因为父类没有显示定义无参构造器
        //调用积累构造器必须是导出类构造器中第一件要做的事情
        super("");
    }

    public Sun(String s){
        super("");
        System.out.println("with s Constructor : "+s);
    }
    public void sunF1(){
        System.out.println(super.f());
    }

    /**
     * 复写父类的方法
     * @return
     */
    @Override
    public String f1(){
        return "";
    }

    public static void main(String[] args) {
        Sun sun = new Sun("new Sun");
        sun.sunF1();
    }
}
